From d4c1dbe3d72df9a6a9cd10ed61987ac25dd6dc57 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 4 Feb 2011 21:01:52 -0500 Subject: [PATCH] Pass group state to _gdk_x11_device_xi2_translate_state This will be necessary to make groups work with XI2. --- gdk/x11/gdkdevice-xi2.c | 7 ++++--- gdk/x11/gdkdevicemanager-xi2.c | 10 +++++----- gdk/x11/gdkprivate-x11.h | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gdk/x11/gdkdevice-xi2.c b/gdk/x11/gdkdevice-xi2.c index b49cbaab15..a3700de757 100644 --- a/gdk/x11/gdkdevice-xi2.c +++ b/gdk/x11/gdkdevice-xi2.c @@ -361,7 +361,7 @@ gdk_x11_device_xi2_query_state (GdkDevice *device, *win_y = (gint) xwin_y; if (mask) - *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state); + *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state, &group_state); free (button_state.mask); @@ -602,7 +602,7 @@ gdk_x11_device_xi2_window_at_position (GdkDevice *device, *win_y = (window) ? (gint) xwin_y : -1; if (mask) - *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state); + *mask = _gdk_x11_device_xi2_translate_state (&mod_state, &button_state, &group_state); free (button_state.mask); @@ -685,7 +685,8 @@ _gdk_x11_device_xi2_translate_event_mask (GdkEventMask event_mask, guint _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state, - XIButtonState *buttons_state) + XIButtonState *buttons_state, + XIGroupState *group_state) { guint state = 0; diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c index 33cd1ae27f..16de055269 100644 --- a/gdk/x11/gdkdevicemanager-xi2.c +++ b/gdk/x11/gdkdevicemanager-xi2.c @@ -1017,7 +1017,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, event->key.window = window; event->key.time = xev->time; - event->key.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons); + event->key.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group); event->key.group = _gdk_x11_get_group_for_state (display, event->key.state); event->key.hardware_keycode = xev->detail; @@ -1095,7 +1095,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, GUINT_TO_POINTER (xev->sourceid)); gdk_event_set_source_device (event, source_device); - event->scroll.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons); + event->scroll.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group); break; } /* else (XI_ButtonRelease) fall thru */ @@ -1131,7 +1131,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, gdk_device_get_axis (device, event->button.axes, GDK_AXIS_Y, &event->button.y); } - event->button.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons); + event->button.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group); event->button.button = xev->detail; } @@ -1167,7 +1167,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, GUINT_TO_POINTER (xev->sourceid)); gdk_event_set_source_device (event, source_device); - event->motion.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons); + event->motion.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group); /* There doesn't seem to be motion hints in XI */ event->motion.is_hint = FALSE; @@ -1216,7 +1216,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator, event->crossing.mode = translate_crossing_mode (xev->mode); event->crossing.detail = translate_notify_type (xev->detail); - event->crossing.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons); + event->crossing.state = _gdk_x11_device_xi2_translate_state (&xev->mods, &xev->buttons, &xev->group); } break; case XI_FocusIn: diff --git a/gdk/x11/gdkprivate-x11.h b/gdk/x11/gdkprivate-x11.h index f3b8a8c146..e70846419f 100644 --- a/gdk/x11/gdkprivate-x11.h +++ b/gdk/x11/gdkprivate-x11.h @@ -241,7 +241,8 @@ void _gdk_x11_device_xi_translate_axes (GdkDevice *device, guchar * _gdk_x11_device_xi2_translate_event_mask (GdkEventMask event_mask, gint *len); guint _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state, - XIButtonState *buttons_state); + XIButtonState *buttons_state, + XIGroupState *group_state); void _gdk_x11_event_translate_keyboard_string (GdkEventKey *event); -- 2.30.2